perm filename NEWBOO[AM,DBL] blob sn#462855 filedate 1979-07-26 generic text, type T, neo UTF8
(FILECREATED "21-Aug-78 06:03:55" <MOLGEN>NEWBOOT.;3 2475   

     previous date: "21-Aug-78 05:50:09" <MOLGEN>NEWBOOT.;2)


(PRETTYCOMPRINT NEWBOOTCOMS)

(RPAQQ NEWBOOTCOMS ((FNS * NEWBOOTFNS)))

(RPAQQ NEWBOOTFNS (EDITEXPR EDITMACRO GET-LIST PUT-LIST TVMACRO))
(DEFINEQ

(EDITEXPR
  [LAMBDA (VALUE RESTRICTION SLOT UNIT)
    (CLISP: FAST)
    (PROG (COM DONEFLG TEMP)
          (WRITE "EXPR Editor")
          (do (NLSETQ (PROGN COM←(INTTY "ee: " '("DE" "PR" "ED" "DO" "OK"))
			     (SELECTQ COM
				      (ED (if VALUE=NIL
					      then VALUE←(COPY <'AND >))
					  (EDITV VALUE)
					  (CLEARBUF))
				      (DE (if VALUE
					      then TEMP←(INTTY "Clause # " NIL 
							       "Type the number of the clause you want to delete.")
						   (if (AND (NUMBERP TEMP)
							    (TEMP LT (FLENGTH VALUE)+ -1))
						       then TEMP←TEMP+1
							    VALUE←(for CLAUSE in VALUE as I from 2 to 100
								     unless (EQP I TEMP) collect CLAUSE)
						     else (WRITE "Expecting a number between 1 and " (FLENGTH VALUE)+ -1))
					    else (WRITE "Nothing to delete")))
				      (PR (WRITE VALUE))
				      ((DO OK)
					DONEFLG←T)
				      NIL)))
	     until DONEFLG)
          (RETURN VALUE])

(EDITMACRO
  [LAMBDA (VALUE RESTRICTION SLOT UNIT)
    (CLISP: FAST)

          (* EDITOR for MACRO datatype.)


    (PROG NIL
          (WRITE "MACRO editor")
          (if VALUE=NIL
	      then (if 'Y =(INTTY "Do you want to enter a MACRO now? " '("Y" "N")
				  "Type Y to enter the macro.
Type N to set no value. (Macro to be set at lower level.)")
		       then VALUE←(COPY <'INITIAL-MACRO >)
		     else (RETURN NIL))
	    else VALUE←(COPY VALUE))
          (EDITV VALUE)
          (CLEARBUF)
          (RETURN VALUE])

(GET-LIST
  [LAMBDA (SLOT UNIT)
    (CLISP: FAST)

          (* GET-LIST returns a LISP-list from the SLOT of UNIT. It performs no checking and does not copy the list.)


    (GETVALUE SLOT UNIT)::2])

(PUT-LIST
  [LAMBDA (SLOT UNIT NEWLIST)
    (CLISP: FAST)

          (* PUT-LIST replaces the value of the list in SLOT of UNIT with the new list given in VAL.
	  It performs no checking.)


    (PROG (OLDVAL)
          (OLDVAL←(HCOPYALL (GETVALUE SLOT UNIT)))
          (OLDVAL::2←NEWLIST)
          (PUTFIELD OLDVAL 'VALUE SLOT UNIT])

(TVMACRO
  [LAMBDA (VALUE RESTRICTION SLOT UNIT)
    (CLISP: FAST)
    (if VALUE
	then T])
)
(DECLARE: DONTCOPY
  (FILEMAP (NIL (273 2451 (EDITEXPR 285 . 1242) (EDITMACRO 1246 . 1788) (GET-LIST 1792 . 1999) (PUT-LIST 2003 . 2350) (TVMACRO
2354 . 2448)))))
STOP